<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- 会被template中的内容替换掉 -->
        el中的 {{ msg }}
    </div>
    <script src="./vue.js"></script>
    <script>
        // 如果仅仅是实例化vue对象中, 既有el, 又有template, 如果template中定义模板的内容, 那么template模板的优先级大于el
        
        // APP组件下有 header aside content
        // 1. 创建组件 Vue中组件的名称要大写, 跟标签区分 组件中data必须是个函数, 并且一定要有返回值
        let App = {
            data() {
                return {
                    text:"hello word"
                }
            },
            template: `
                <div>
                    <h2> {{ text }} </h2>
                </div>
            `
        };
        new Vue({
            el:'#app',
            data() {
                return {
                    msg:"hello"
                }
            },
            // 使用组件
            template: `
                <div class="app">
                    <App />
                </div>
            `,
            // 挂载组件
            components: {
                // 2. 挂载组件
                // 如果key和value一样可以只写一个
                // App:App
                App
            }
        });
    </script>
</body>
</html>